﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<time.h>
#include<stdlib.h>
#include<stdbool.h>
#include<assert.h>
//typedef int QDataType;
// 链式结构：表示队列 
//typedef struct QListNode
//{
//	struct QListNode* next;
//	QDataType data;
//}QNode;
//
// 队列的结构 
//typedef struct Queue
//{
//	QNode* head;
//	QNode* tail;
//	int size;
//}Queue;
//void QueueInit(Queue* q)
//{
//	assert(q);
//	q->head = q->tail = NULL;
//	q->size = 0;
//}
//void QueueDestroy(Queue * q)
//{
//	QNode* cur = q->head;
//	while (cur)
//	{
//		QNode* next = cur->next;
//		free(cur);
//		cur = next;
//	}
//	q->head = NULL; q->tail = NULL;
//	q->size = 0;
//
//}
//void QueuePush(Queue* q, QDataType data)
//{
//	assert(q);
//	QNode* newdata = (QNode*)malloc(sizeof(QNode));
//	if (newdata == NULL)
//	{
//		perror("malloc fail");
//		exit(-1);
//	}
//	newdata->data = data;
//	newdata->next = NULL;
//	if (q->tail == NULL)
//	{
//		q->tail = q->head = newdata;
//		q->size++;
//	}
//	else
//	{
//		q->tail->next = newdata;
//		q->tail = newdata;
//		q->size++;
//	}
//}
//void QueuePop(Queue* q)
//{
//	assert(q);
//	assert(!QueueEmpty(q));
//	if (q->head->next == NULL)
//	{
//		free(q->head);
//		q->head = q->tail=NULL;
//	}
//	else
//	{
//		QNode* cur = q->head->next;
//		free(q->head);
//		q->head = cur;
//	}
//	q->size--;
//}
//QDataType QueueFront(Queue* q)
//{
//	assert(q);
//	assert(!QueueEmpty(q));
//	return q->head->data;
//}
//QDataType QueueBack(Queue* q)
//{
//	assert(q);
//	assert(!QueueEmpty(q));
//	return q->tail->data;
//}
//int QueueSize(Queue* q)
//{
//	assert(q);
//	return q->size;
//}
//int QueueEmpty(Queue* q)
//{
//	assert(q);
//	return q->head==NULL;
//}
//int main()
//{
//	int m = 5;
//	int n = 3;
//	int i = 0;
//	Queue st;
//	QueueInit(&st);
//	QueuePush(&st, 1);
//	QueuePush(&st, 2);
//	QueuePush(&st, 3);
//	QueuePush(&st, 4);
//	QueuePush(&st, 5);
//	QueuePush(&st, 6);
//	st.tail->next = st.head;
//	struct QListNode * p = st.head;
//	while (st.tail->next!=NULL)
//	{
//		printf("%d ", p->data);
//		p = p->next;
//	}
//	struct QListNode* cur=NULL;
//	struct QListNode* q = NULL;
//	while (p->next)
//	{
//		for (i = 1; i <= n; i++)
//		{
//			if (i !=n)
//			{
//	             cur = p;
//				  q = p->next;
//				 p = q;
//			}
//			if (i == n)
//			{
//				q = p->next;
//				free(p);
//				p = NULL;
//				cur->next = NULL;
//				if (cur != q)
//				{
//					cur->next = q;
//				}
//				p = q;
//			
//			}
//		}
//
//	}
//	printf("%d", p->data);
//	QueueDestroy(&st);
//	return 0;
//}
int main()
{
	printf("%s", "dasdadas");
	sleep(1);
	return 0;
}